<!Doctype html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<title>最让程序员懊恼的10件事 | 菜鸟教程</title>

  <meta name='robots' content='max-image-preview:large' />
<link rel='stylesheet' id='classic-theme-styles-css' href='../0/classic-themes.min.css?ver=6.2' type='text/css' media='all' />
<link rel="canonical" href="../w3cnote/top-10-things-that-annoy-programmers.html" />
<meta name="keywords" content="最让程序员懊恼的10件事">
<meta name="description" content="10.注释说明“是什么”，而不是“为什么”   入门级编程课程教导学生要学会频繁且尽早地注释。不可否认在学习编程的起步阶段这方法的确是相当有效的（即使看到最简单的代码行都像天书）。然而许多程序员即使已经从一只小菜鸟长大成一位计算机牛人，也还是把这个习惯给延续了下来。   r = n / 2; // 让 r 等于 n 除以 2     // 当 r - (n/r) 大于 t 时进行循环   while ( abs( r - (n/r) )..">
		
	<link rel="shortcut icon" href="https://static.runoob.com/images/favicon.ico">
	<link rel="stylesheet" href="../0/style.css?v=1.170" type="text/css" media="all" />	
	<link rel="stylesheet" href="../0/font-awesome.min.css" media="all" />	
  <!--[if gte IE 9]><!-->
  <script src=""></script>
  <!--<![endif]-->
  <!--[if lt IE 9]>
     <script src=""></script>
     <script src=""></script>
  <![endif]-->
  <link rel="apple-touch-icon" href="https://static.runoob.com/images/icon/mobile-icon.png"/>
  <meta name="apple-mobile-web-app-title" content="菜鸟教程">
</head>
<body>

<!--  头部 -->
<div class="container logo-search">

  <div class="col search row-search-mobile">
    <form action="index.php">
      <input class="placeholder" placeholder="搜索……" name="s" autocomplete="off">
      
    </form>
  </div>

  <div class="row">
    <div class="col logo">
      <h1><a href="../">菜鸟教程 -- 学的不仅是技术，更是梦想！</a></h1>
    </div>
        <div class="col right-list"> 
    <button class="btn btn-responsive-nav btn-inverse" data-toggle="collapse" data-target=".nav-main-collapse" id="pull" style=""> <i class="fa fa-navicon"></i> </button>
    </div>
        
    <div class="col search search-desktop last">
      <div class="search-input" >
      <form action="//www.runoob.com/" target="_blank">
        <input class="placeholder" id="s" name="s" placeholder="搜索……"  autocomplete="off" style="height: 44px;">
      </form>
      
      </div>
    </div>
  </div>
</div>



<!-- 导航栏 -->
<div class="container navigation">
    <div class="row">
        <div class="col nav">
            

                        <ul class="pc-nav" id="note-nav">
                <li><a href="../">首页</a></li>
                <li><a href="../w3cnote">笔记首页</a></li>
                <li><a href="../w3cnote/android-tutorial-intro.html" title="Android 基础入门教程">Android</a></li>
                <li><a href="../w3cnote/es6-tutorial.html" title="ES6 教程">ES6 教程</a></li>
                <li><a href="../w3cnote/ten-sorting-algorithm.html" title="排序算法">排序算法</a></li>
                <li><a href="../w3cnote/hadoop-tutorial.html" title="Hadoop 教程">Hadoop</a></li>
                <li><a href="../w3cnote/zookeeper-tutorial.html" title="Zookeeper 教程">Zookeeper</a></li>
                <li><a href="../w3cnote/verilog-tutorial.html" title="Verilog 教程">Verilog</a></li>
                <li><a href="../w3cnote_genre/code" title="编程技术">编程技术</a></li> 
                <li><a href="../w3cnote_genre/coderlife" title="程序员人生">程序员人生</a></li>
                
                <!--<li><a href="javascript:;" class="runoob-pop">登录</a></li>
                
                
                        <li>
                <a style="font-weight:bold;" href="../linux/linux-tutorial.html#yunserver" target="_blank" onclick="_hmt.push(['_trackEvent', 'aliyun', 'click', 'aliyun'])" title="kkb">云服务器</a>
                </li>
                <li><a href="http://gk.link/a/104mQ" target="_blank" style="font-weight: bold;"onclick="_hmt.push(['_trackEvent', '极客时间', 'click', 'jike'])" title="我的圈子">极客时间</a></li>
            
                
                <li><a target="_blank" href="../shoppinglist" rel="nofollow">知识店铺</a></li> 
        -->
            </ul>
                        
              
            <ul class="mobile-nav">
                <li><a href="../w3cnote">首页</a></li>
                <li><a href="../w3cnote_genre/android" target="_blank" title="Android 基础入门教程">Android</a></li>
                <li><a href="../w3cnote/es6-tutorial.html" target="_blank" title="ES6 教程">ES6</a></li>
                <li><a href="../w3cnote_genre/joke" target="_blank" title="程序员笑话">逗乐</a></li>
                
                <a href="javascript:void(0)" class="search-reveal">Search</a> 
            </ul>
            
        </div>
    </div>
</div>


<!--  内容  -->
<div class="container main">
	<div class="row">

		<div class="col middle-column big-middle-column">
	 			<div class="article">
			<div class="article-heading">
				<h2>最让程序员懊恼的10件事</h2>				<h3><em>分类</em> <a href="../w3cnote_genre/coderlife" title="程序员人生" >程序员人生</a> </h3>
			</div>
			<div class="article-body note-body">
				<div class="article-intro">
					<p><img decoding="async" src="//www.runoob.com/wp-content/uploads/2014/07/9_110817094741_1.jpg" alt="9_110817094741_1" width="600" height="281" class="alignnone size-full wp-image-8787" srcset="http://www.runoob.com/wp-content/uploads/2014/07/9_110817094741_1.jpg 600w, http://www.runoob.com/wp-content/uploads/2014/07/9_110817094741_1-300x140.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h3>
10.注释说明"是什么"，而不是"为什么"
</h3>
<p>
入门级编程课程教导学生要学会频繁且尽早地注释。不可否认在学习编程的起步阶段这方法的确是相当有效的（即使看到最简单的代码行都像天书）。然而许多程序员即使已经从一只小菜鸟长大成一位计算机牛人，也还是把这个习惯给延续了下来。
</p>
<pre>
r = n / 2; // 让 r 等于 n 除以 2  
 
// 当 r - (n/r) 大于 t 时进行循环  
while ( abs( r - (n/r) ) &gt; t ) {  
&nbsp;&nbsp;&nbsp;&nbsp;r = 0.5 * ( r + (n/r) ); // 设置 r 等于 r + (n/r) 的一半  
} 
</pre>
<p>
看明白上面的代码是啥意思没？
</p><p>
四个字：云里雾里。
</p><p>
上述问题就是，虽然有很多注释，但是却没有说明为什么要写这些代码。下面将上述相同的代码换用另一种注释，那效果就大大不同了。
</p><pre>
// 使用牛顿-Raphson算法求n的平方根近似值  
 
r = n / 2;  
while ( abs( r - (n/r) ) &gt; t ) {  
&nbsp;&nbsp;&nbsp;&nbsp;r = 0.5 * ( r + (n/r) );  
} 
</pre>
<p>
是不是好多了！虽然我们还是没有完全理解这段代码是什么意思，但是至少我们精简了代码，清爽多了。
</p><p>
写注释是为了帮助读者理解代码。这里假设，所有阅读代码的人都已经对for循环如何运行有了基本的了解。他们可能不清楚的是，你的代码如何奏效或者你为什么选择这条路径来实现。
</p>
<h3>
9.各种打搅
</h3>
<p>
在大多数情况下，程序员的思绪比起法拉利更像是火车，需要慢慢启动，也就是说我们得酝酿一下才能进入状态。但是一旦我们全身心投入的时候，就会高效完成很多令人啧啧称赞的代码。只是很不幸的是，这是很难达到的境界，因为我们的思路总是不断受到客户和同事的打搅。
</p>
<h3>
8.范围蔓延
</h3>
<p>
维基百科将范围蔓延定义为"在项目范围内不受控制的变化"。范围蔓延会使得一个相对简单的请求延伸成一个极为复杂和耗时的任务。它就是运用一些看似方便无害的要求蔓延范围，一步一步破坏项目的时间表：
</p>
<ul><li>
版本1：显示所在位置的地图</li><li>
版本2：显示所在位置的三维地图</li><li>
版本3：显示所在位置的三维地图，精确到可以作为飞行导航</li></ul>
<h3>
7.管理层不懂编程
</h3>
<p>
当然，也会有例外，此点标题仅为个人遭遇，如有雷同，纯属巧合。
</p><p>
首先我们要承认，管理不是个简单活。下属会讨厌你：他们脆弱的内心有时也会受伤。并且要保持一大群人的团结和凝聚力几乎就像是座山一样的任务。然而，任务艰巨并不意味着管理者能不对他们的下属有一个基本的了解。当管理层无法把握工作理念，就会使员工出现范围蔓延，超出完成期限，感到挫折心情沮丧等等状况。这是很多程序员在日常工作中经常抱怨和焦虑的根本原因。
</p><h3>
6.写文档
</h3><p>
没错，的确有很多文档生成工具，但我的经验告诉我，这些工具都是只适合生成API文档，以供其他程序员参考。如果你开发的软件是很多人在日常生活中都会用到的，那么你最好写一些即使外行人也能理解的文档（例如，应用程序如何工作、故障诊断指南等等）。
</p><p>
好吧，有些程序员可不乐意干这事儿。大家经常做的是，快速浏览开源项目，然后开始不断的搜寻文档来获取帮助。
</p><p>
我敢打保票的说，不管在哪里，几乎所有的程序员被要求写文档时，都会说："不能让其他人去写吗？"
</p><h3>
5. 缺少文档的程序
</h3><p>
好吧，我从来没有说过我们程序员是说一套做一套的人。程序员经常被要求在项目中用到第三方的类库和应用。这使得我们不得不需要文档。但是正如我在上面那条说的那样，程序员痛恨写文档。真是个矛盾又纠结啊！
</p><p>
当我们需要使用一个第三方类库是，却不知道至少有一半的API有什么用，没有什么比这个更让人崩溃了。知道函数poorlyNamedFunctionA()和poorlyButSimilarlyNamedFunctionB()的区别不？当我访问PropertyX时是不是需要先做一个null测试？如果缺少文档，我估计我得通过自己的测试和错误报告才能知道结果，哦，my god！
</p><h3>
4.硬件（总是被当成修电脑的）
</h3>
<p>
任何一个程序员要是被叫去调试数据库服务器上一种奇怪的宕机现象，或者去解决RAID驱动器不能正常工作的问题，而最后发现却是硬件的原因，orz都会痛苦不已。话说，不知道哪里来的误解，人们竟然会以为程序员这种整天捣鼓电脑的家伙，肯定知道如何修电脑。好吧，有些程序员确实会修（大概是他们大学时泡妹子修炼的技能？），但是，我敢打包票，大多数程序员是不知道的，或者对程序被编译成机器码后是如何工作的毫不关心。
</p><p>
我们关心什么呢？我们关心的是我们做出来的东西是否符合需求，这样我们才能集中精力去解决更高级别的任务。
</p><h3>
3.含糊不清
</h3>
<p>
"哎呀，我的网站出问题了"、"XX功能不正常"，这种指向性不明确的要求最痛苦了。我特别讶异的是，当我们要求那些非程序员重现问题时，他们竟然会愤怒不已。难道他们不知道，仅仅一句"电脑坏掉了，快点修复一下"，我们是没办法开始工作的，我们需要更多的信息。
</p><p>
软件的运行，在大多数情况下，是有迹可循的。我们也喜欢这种方式。请迁就我们，帮助我们找出是在哪一步出现的问题，而不是简单一句"修复"。
</p><h3>
2.与其他程序员的相处
</h3><p>
程序员经常和其他程序员合不来。不要装的很惊讶，内心早承认了吧，亲爱的程序员们。关于这方面的事例我随口就可以列出十大条，甚至可以另外单独写篇博客，所以在本文中我仅列出几个之所以会和同事难以好好相处的常见原因：
</p><p>
脾气暴躁，态度不友好。</p><p>
不明白什么时候该去讨论系统的架构，什么时候该开工。</p><p>
无法进行有效的沟通，使用易于误解的专业术语。</p><p>
自己的事情处理不好。</p><p>
对代码库和项目兴致缺缺。</p><p>
这还不是最糟糕的，还有个重量级的"程序员杀手"——No.1在后面呢……</p>
<h3>
1.6个月后再看自己的代码
</h3>
<p>
别打喷嚏，我发现了一个bug。
</p><p>
你有没有回过头去看看自己以前写的代码，有没有情不自禁地捶胸顿足？有没有在懊恼自己当初怎么会这么傻逼，写出这种垃圾玩意！删掉，删掉，通通删掉！
</p><p>
好吧，你可以开心一下，这种事并不单单发生在你身上。
</p><p>
我们的编程世界是在不断变化的。今天或许是最棒的技术，明天搞不好就过时了。我们永远写不出完美的代码，因为评价的标准也在随着时代的进步而不断提高。无论我们写出来的代码现在看来是要多完美有多完美，但是很可能在不久之后就是被人嘲笑的对象了。
</p><p>
这的确让人情不自禁的沮丧，因为即使我们现在怎么努力去学习最新最棒的开发工具、设计、框架，以及开发方法，我们总是比最新的技术发展趋势慢了一步。于我而言，这是作为一个程序员最为懊恼的事情了，没有之一，所以我把这一条列为No.1。我们能做的就是不断更新自己的技术，不过有时候，我却会觉得我就像是个搞沙雕的，不断推到重做，呵呵。
</p><p>

译文链接：http://news.html5tricks.com/top-10-things-annoy-programmer.html</p><p>
英文原文：http://www.kevinwilliampang.com/2008/08/28/top-10-things-that-annoy-programmers/</p><p>				</div>
			</div>
			<div class="previous-next-links">
			<div class="previous-design-link">← <a href="../w3cnote/how-much-water-should-i-drink-a-day.html" rel="prev"> 为什么程序员跟其他人比起来应该喝更多的水</a> </div>
			<div class="next-design-link"><a href="../w3cnote/repair-computer.html" rel="next"> 血泪教训：牢记修电脑军规 20 条！</a> →</div>
			</div>
						<div class="article-heading-ad" id="w3cnote-ad728">
			<script async src=""></script>
			<!-- 移动版 自动调整 -->
			<ins class="adsbygoogle"
			     style="display:inline-block;min-width:300px;max-width:970px;width:100%;height:90px"
			     data-ad-client="ca-pub-5751451760833794"
			     data-ad-slot="1691338467"
			     data-ad-format="horizontal"></ins>
			<script>
			(adsbygoogle = window.adsbygoogle || []).push({});
			</script>
			</div>
			<style>
@media screen and (max-width: 768px) {
	#w3cnote-ad728 {
		display: none;
	}
}
p.note-author {
    border-bottom: 1px solid #ddd;
    font-size: 18px;
    font-weight: bold;
    color: #78a15a;
    padding-bottom: 2px;
    margin-bottom: 4px;
}
</style>
<script>
var aid = 8786;
</script>
	</div>
		
	</div>
	<div class="listcol last right-column">




<!--
	<div class="tab tab-light-blue"> 订阅</div>
	<div class="sidebar-box">
		<div class="socialicons">
			<a href="../feed" class="rss">RSS 订阅</a>
		
			<form action="//list.qq.com/cgi-bin/qf_compose_send" method="post">
			<input type="hidden" value="qf_booked_feedback" name="t">
			<input type="hidden" value="4b67b6b6c1f5e792559940cab4aebb8f1126fba880bff1a8" name="id">
			<input class="placeholder" id="feed_email" name="to" value="输入邮箱 订阅笔记" autocomplete="off">
			<input type="submit" value="订阅" class="btn btn-primary">
			</form>
		
		</div>
 
	</div>
-->	



<!--
	<div class="sidebar-box cate-list">
	<div class="sidebar-box recommend-here list-link">
			<a href="javascript:void(0);" style="font-size: 16px; color:#64854c;font-weight:bold;">笔记列表</a>
		</div>

 

</div>
-->

	 <div class="sidebar-box cate-list">
		 		

	 	<div class="sidebar-box recommend-here list-link">
			<a href="javascript:void(0);" style="font-size: 16px; color:#64854c;font-weight:bold;">教程列表</a>
		</div>
		
		<div class="cate-items"> 
				<a href="../ado">ADO 教程</a>
	<a href="../ajax">Ajax 教程</a>
	<a href="../android">Android 教程</a>
	<a href="../angularjs2">Angular2 教程</a>
	<a href="../angularjs">AngularJS 教程</a>
	<a href="../appml">AppML 教程</a>
	<a href="../asp">ASP 教程</a>
	<a href="../aspnet">ASP.NET 教程</a>
	<a href="../bootstrap">Bootstrap 教程</a>
	<a href="../bootstrap4">Bootstrap4 教程</a>
	<a href="../bootstrap5">Bootstrap5 教程</a>
	<a href="../cprogramming">C 教程</a>
	<a href="../csharp">C# 教程</a>
	<a href="../cplusplus">C++ 教程</a>
	<a href="../chartjs">Chart.js 教程</a>
	<a href="../cssref">CSS 参考手册</a>
	<a href="../css">CSS 教程</a>
	<a href="../css3">CSS3 教程</a>
	<a href="../django">Django 教程</a>
	<a href="../docker">Docker 教程</a>
	<a href="../dtd">DTD 教程</a>
	<a href="../echarts">ECharts 教程</a>
	<a href="../eclipse">Eclipse 教程</a>
	<a href="../firebug">Firebug 教程</a>
	<a href="../font-awesome">Font Awesome 图标</a>
	<a href="../foundation">Foundation 教程</a>
	<a href="../git">Git 教程</a>
	<a href="../go">Go 语言教程</a>
	<a href="../googleapi">Google 地图 API 教程</a>
	<a href="../highcharts">Highcharts 教程</a>
	<a href="../htmldom">HTML DOM 教程</a>
	<a href="../tags">HTML 参考手册</a>
	<a href="../charsets">HTML 字符集</a>
	<a href="../html">HTML 教程</a>
	<a href="../http">HTTP 教程</a>
	<a href="../ionic">ionic 教程</a>
	<a href="../ios">iOS 教程</a>
	<a href="../java">Java 教程</a>
	<a href="../jsref">JavaScript 参考手册</a>
	<a href="../js">Javascript 教程</a>
	<a href="../jeasyui">jQuery EasyUI 教程</a>
	<a href="../jquerymobile">jQuery Mobile 教程</a>
	<a href="../jqueryui">jQuery UI 教程</a>
	<a href="../jquery">jQuery 教程</a>
	<a href="../json">JSON 教程</a>
	<a href="../jsp">JSP 教程</a>
	<a href="../julia">Julia 教程</a>
	<a href="../kotlin">Kotlin 教程</a>
	<a href="../linux">Linux 教程</a>
	<a href="../lua">Lua 教程</a>
	<a href="../markdown">Markdown 教程</a>
	<a href="../matplotlib">Matplotlib 教程</a>
	<a href="../maven">Maven 教程</a>
	<a href="../memcached">Memcached 教程</a>
	<a href="../mongodb">MongoDB 教程</a>
	<a href="../mysql">MySQL 教程</a>
	<a href="../nodejs">Node.js 教程</a>
	<a href="../numpy">NumPy 教程</a>
	<a href="../pandas">Pandas 教程</a>
	<a href="../perl">Perl 教程</a>
	<a href="../php">PHP 教程</a>
	<a href="../postgresql">PostgreSQL 教程</a>
	<a href="../python3">Python 3 教程</a>
	<a href="../python">Python 基础教程</a>
	<a href="../r">R 教程</a>
	<a href="../rdf">RDF 教程</a>
	<a href="../react">React 教程</a>
	<a href="../redis">Redis 教程</a>
	<a href="../rss">RSS 教程</a>
	<a href="../ruby">Ruby 教程</a>
	<a href="../rust">Rust 教程</a>
	<a href="../sass">Sass 教程</a>
	<a href="../scala">Scala 教程</a>
	<a href="../scipy">SciPy 教程</a>
	<a href="../servlet">Servlet 教程</a>
	<a href="../soap">SOAP 教程</a>
	<a href="../sql">SQL 教程</a>
	<a href="../sqlite">SQLite 教程</a>
	<a href="../svg">SVG 教程</a>
	<a href="../svn">SVN 教程</a>
	<a href="../swift">Swift 教程</a>
	<a href="../tcpip">TCP/IP 教程</a>
	<a href="../typescript">TypeScript 教程</a>
	<a href="../vbscript">VBScript 教程</a>
	<a href="../vue2">Vue.js 教程</a>
	<a href="../vue3">Vue3 教程</a>
	<a href="../w3c">W3C 教程</a>
	<a href="../webservices">Web Service 教程</a>
	<a href="../wsdl">WSDL 教程</a>
	<a href="../xlink">XLink 教程</a>
	<a href="../dom">XML DOM 教程</a>
	<a href="../schema">XML Schema 教程</a>
	<a href="../xml">XML 教程</a>
	<a href="../xpath">XPath 教程</a>
	<a href="../xquery">XQuery 教程</a>
	<a href="../xslfo">XSLFO 教程</a>
	<a href="../xsl">XSLT 教程</a>
	<a href="../data-structures">数据结构</a>
	<a href="../regexp">正则表达式</a>
	<a href="../quiz">测验</a>
	<a href="../browsers">浏览器</a>
	<a href="../quality">网站品质</a>
	<a href="../web">网站建设指南</a>
	<a href="../hosting">网站服务器教程</a>
	<a href="../design-pattern">设计模式</a>
			
		</div> 
		 	 </div>
</div>
	</div>
</div>


<!-- 底部 -->
<div id="footer" class="mar-t50">
   <div class="runoob-block">
    <div class="runoob cf">
     <dl>
      <dt>
       在线实例
      </dt>
      <dd>
       &middot;<a target="_blank" href="../html/html-examples.html">HTML 实例</a>
      </dd>
      <dd>
       &middot;<a target="_blank" href="../css/css-examples.html">CSS 实例</a>
      </dd>
      <dd>
       &middot;<a target="_blank" href="../js/js-examples.html">JavaScript 实例</a>
      </dd>
      <dd>
       &middot;<a target="_blank" href="../ajx/ajax-examples.html">Ajax 实例</a>
      </dd>
       <dd>
       &middot;<a target="_blank" href="../jquery/jquery-examples.html">jQuery 实例</a>
      </dd>
      <dd>
       &middot;<a target="_blank" href="../xml/xml-examples.html">XML 实例</a>
      </dd>
      <dd>
       &middot;<a target="_blank" href="../java/java-examples.html">Java 实例</a>
      </dd>
     
     </dl>
     <dl>
      <dt>
      字符集&工具
      </dt>
      <dd>
       &middot; <a target="_blank" href="../charsets/html-charsets.html">HTML 字符集设置</a>
      </dd>
      <dd>
       &middot; <a target="_blank" href="../tags/html-ascii.html">HTML ASCII 字符集</a>
      </dd>
     <dd>
       &middot; <a target="_blank" href="https://c.runoob.com/front-end/6939/">JS 混淆/加密</a>
      </dd> 
      <dd>
       &middot; <a target="_blank" href="https://c.runoob.com/front-end/6232/">PNG/JPEG 图片压缩</a>
      </dd>
      <dd>
       &middot; <a target="_blank" href="../tags/html-colorpicker.html">HTML 拾色器</a>
      </dd>
      <dd>
       &middot; <a target="_blank" href="..//c.runoob.com/front-end/53">JSON 格式化工具</a>
      </dd>
      <dd>
       &middot; <a target="_blank" href="..//c.runoob.com/front-end/6680/">随机数生成器</a>
      </dd>
     </dl>
     <dl>
      <dt>
       最新更新
      </dt>
                   <dd>
       &middot;
      <a href="../matplotlib/matplotlib-imread.html" title="Matplotlib imread() 方法">Matplotlib imre...</a>
      </dd>
              <dd>
       &middot;
      <a href="../matplotlib/matplotlib-imsave.html" title="Matplotlib imsave() 方法">Matplotlib imsa...</a>
      </dd>
              <dd>
       &middot;
      <a href="../matplotlib/matplotlib-imshow.html" title="Matplotlib imshow() 方法">Matplotlib imsh...</a>
      </dd>
              <dd>
       &middot;
      <a href="../matplotlib/matplotlib-hist.html" title="Matplotlib 直方图">Matplotlib 直方图</a>
      </dd>
              <dd>
       &middot;
      <a href="../python3/python-func-object.html" title="Python object() 函数">Python object()...</a>
      </dd>
              <dd>
       &middot;
      <a href="../python3/python-ai-draw.html" title="Python AI 绘画">Python AI 绘画</a>
      </dd>
              <dd>
       &middot;
      <a href="../w3cnote/cursor-editor.html" title="神辅助 Cursor 编辑器，加入 GPT-4 让编码更轻松！">神辅助 Cursor ...</a>
      </dd>
             </dl>
     <dl>
      <dt>
       站点信息
      </dt>
      <dd>
       &middot;
       <a target="_blank" href="mailto:admin@runoob.com" rel="external nofollow">意见反馈</a>
       </dd>
      <dd>
       &middot;
      <a target="_blank" href="../disclaimer">免责声明</a>
       </dd>
      <dd>
       &middot;
       <a target="_blank" href="../aboutus">关于我们</a>
       </dd>
      <dd>
       &middot;
      <a target="_blank" href="../archives">文章归档</a>
      </dd>
    
     </dl>
    
     <div class="search-share">
      <div class="app-download">
        <div>
         <strong>关注微信</strong>
        </div>
      </div>
      <div class="share">
      <img width="128" height="128" src="/wp-content/themes/runoob/assets/images/qrcode.png" />
       </div>
     </div>
     
    </div>
   </div>
   <div class="w-1000 copyright">
     Copyright &copy; 2013-2023    <strong><a href="../" target="_blank">菜鸟教程</a></strong>&nbsp;
    <strong><a href="../" target="_blank">runoob.com</a></strong> All Rights Reserved. 备案号：<a target="_blank" rel="nofollow" href="https://beian.miit.gov.cn/">闽ICP备15012807号-1</a>
   </div>
  </div>
  <div class="fixed-btn">
    <a class="go-top" href="javascript:void(0)" title="返回顶部"> <i class="fa fa-angle-up"></i></a>
    <a class="qrcode"  href="javascript:void(0)" title="关注我们"><i class="fa fa-qrcode"></i></a>
    <a class="writer" style="display:none" href="javascript:void(0)"   title="标记/收藏"><i class="fa fa-star" aria-hidden="true"></i></a>
    <!-- qrcode modal -->
    <div id="bottom-qrcode" class="modal panel-modal hide fade in">
      <h4>微信关注</h4>
      <div class="panel-body"><img alt="微信关注" width="128" height="128" src="/wp-content/themes/runoob/assets/images/qrcode.png"></div> 
    </div>
  </div>

 <div style="display:none;">
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-84264393-2"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-84264393-2');
</script>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?3eec0b7da6548cf07db3bc477ea905ee";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

</div>
<script>
window.jsui={
    www: 'https://www.runoob.com',
    uri: 'https://www.runoob.com/wp-content/themes/runoob'
};
</script>

<script src=""></script>
<script src=""></script>

</body>
</html>